package com.whfc.mach.service;

import com.whfc.common.exception.BizException;
import com.whfc.common.result.PageData;
import com.whfc.mach.dto.maintain.MaintainDTO;
import com.whfc.mach.param.maintain.MachMaintainAddParam;
import com.whfc.mach.param.maintain.MachMaintainEditParam;

import java.util.Date;

/**
 * 设备保养服务
 *
 * @author sun_guodong
 * @date 2021-08-12
 */
public interface AppMachMaintainService {
    /**
     * 设备保养记录列表服务
     *
     * @param deptId
     * @param pageNum
     * @param pageSize
     * @param startDate
     * @param endDate
     * @param keyword
     * @return
     * @throws BizException
     */
    PageData<MaintainDTO> list(Integer deptId, Integer pageNum, Integer pageSize, Date startDate, Date endDate, String keyword, Integer machType) throws BizException;

    /**
     * 设备保养记录列表(单台)服务
     *
     * @param machId
     * @param pageNum
     * @param pageSize
     * @return
     * @throws BizException
     */
    PageData<MaintainDTO> listByMachId(Integer machId, Integer pageNum, Integer pageSize) throws BizException;

    /**
     * 保养详情服务
     *
     * @param maintainId
     * @return
     * @throws BizException
     */
    MaintainDTO detail(Integer maintainId) throws BizException;

    /**
     * 添加保养记录服务
     *
     * @param param
     * @throws BizException
     */
    void add(MachMaintainAddParam param) throws BizException;

    /**
     * 编辑保养记录服务
     *
     * @param param
     * @throws BizException
     */
    void edit(MachMaintainEditParam param) throws BizException;

    /**
     * 删除保养记录服务
     *
     * @param maintainId
     * @throws BizException
     */
    void del(Integer maintainId) throws BizException;

    /**
     * 导出保养记录服务
     *
     * @param deptId
     * @param startDate
     * @param endDate
     * @param keyword
     * @throws BizException
     */
    void export(Integer deptId, Date startDate, Date endDate, String keyword, Integer machType) throws BizException;
}
